import request from '@/utils/request'

/**
 * 模板文件管理API
 */

// 获取主题列表（完整信息）
export function getThemeList() {
  return request({
    url: '/admin/theme/list',
    method: 'get'
  })
}

// 获取主题名称列表（用于下拉选择）
export function getThemeNames() {
  return request({
    url: '/admin/theme/names',
    method: 'get'
  })
}

// 获取所有模板文件
export function getAllTemplateFiles() {
  return request({
    url: '/admin/template-file/list',
    method: 'get'
  })
}

// 根据主题获取模板文件
export function getTemplateFilesByTheme(theme) {
  return request({
    url: `/admin/template-file/theme/${theme}`,
    method: 'get'
  })
}

// 获取模板文件信息
export function getTemplateFileInfo(theme, templateName) {
  return request({
    url: `/admin/template-file/info/${theme}/${templateName}`,
    method: 'get'
  })
}

// 获取模板文件内容
export function getTemplateFileContent(theme, templateName) {
  return request({
    url: '/admin/template-file/content',
    method: 'get',
    params: {
      theme: theme,
      templateName: templateName
    }
  })
}

// 保存模板文件内容
export function saveTemplateFileContent(theme, templateName, content) {
  return request({
    url: '/admin/template-file/content',
    method: 'post',
    params: {
      theme: theme,
      templateName: templateName
    },
    data: content,
    headers: {
      'Content-Type': 'text/plain'
    }
  })
}

// 创建模板文件
export function createTemplateFile(data) {
  return request({
    url: '/admin/template-file/create',
    method: 'post',
    data
  })
}

// 删除模板文件
export function deleteTemplateFile(theme, templateName) {
  return request({
    url: `/admin/template-file/${theme}/${templateName}`,
    method: 'delete'
  })
}

// 重命名模板文件
export function renameTemplateFile(data) {
  return request({
    url: '/admin/template-file/rename',
    method: 'post',
    data
  })
}

// 复制模板文件
export function copyTemplateFile(data) {
  return request({
    url: '/admin/template-file/copy',
    method: 'post',
    data
  })
}

// 验证模板文件
export function validateTemplateFile(theme, templateName) {
  return request({
    url: `/admin/template-file/validate/${theme}/${templateName}`,
    method: 'post'
  })
}

// 预览模板文件
export function previewTemplateFile(theme, templateName, data = {}) {
  return request({
    url: `/admin/template-file/preview/${theme}/${templateName}`,
    method: 'post',
    data
  })
}

// 搜索模板文件
export function searchTemplateFiles(keyword) {
  return request({
    url: '/admin/template-file/search',
    method: 'get',
    params: { keyword }
  })
}

// 获取模板文件统计信息
export function getTemplateFileStatistics() {
  return request({
    url: '/admin/template-file/statistics',
    method: 'get'
  })
}

// 备份模板文件
export function backupTemplateFile(theme, templateName) {
  return request({
    url: `/admin/template-file/backup/${theme}/${templateName}`,
    method: 'post'
  })
}

// 恢复模板文件
export function restoreTemplateFile(data) {
  return request({
    url: '/admin/template-file/restore',
    method: 'post',
    data
  })
}

// 获取模板文件备份列表
export function getTemplateFileBackups(theme, templateName) {
  return request({
    url: `/admin/template-file/backups/${theme}/${templateName}`,
    method: 'get'
  })
}

// 批量操作模板文件
export function batchOperateTemplateFiles(data) {
  return request({
    url: '/admin/template-file/batch',
    method: 'post',
    data
  })
}

// 导入模板文件
export function importTemplateFile(theme, file) {
  const formData = new FormData()
  formData.append('file', file)
  
  return request({
    url: `/admin/template-file/import/${theme}`,
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 导出模板文件
export function exportTemplateFile(theme, templateName) {
  return request({
    url: `/admin/template-file/export/${theme}/${templateName}`,
    method: 'get',
    responseType: 'blob'
  })
}

// 获取模板文件编辑历史
export function getTemplateFileHistory(theme, templateName) {
  return request({
    url: `/admin/template-file/history/${theme}/${templateName}`,
    method: 'get'
  })
}

// 清理模板缓存
export function clearTemplateCache(theme, templateName) {
  return request({
    url: `/admin/template-file/clear-cache/${theme}/${templateName}`,
    method: 'post'
  })
}

// 获取支持的模板类型
export function getSupportedTemplateTypes() {
  return request({
    url: '/admin/template-file/supported-types',
    method: 'get'
  })
}
